package com.carefree.bookmall.dao;


import com.carefree.bookmall.entity.User;

import java.util.List;

/**
 * 用户
 *
 * @author Aurora
 */
public interface UserMapper {

    /**
     * 添加用户
     *
     * @param user 用户对象
     * @return 受影响行数
     */
    public int addUser(User user);

    /**
     * 根据用户名查询
     *
     * @param userName 用户名
     * @return 查询行数
     */
    public int identifyByUserName(String userName);

    /**
     * 根据用户编号修改电话和地址
     *
     * @param userId   用户id
     * @param phone    电话
     * @param address  地址
     * @param realName 真实姓名
     * @return
     */
    public int updatePhoneAndAddressById(Integer userId, String realName, String phone, String address);

    /**
     * 修改密码
     *
     * @param userId   用户id
     * @param password 新密码
     * @return 受影响行数
     */
    public int updatePassword(Integer userId, String password);

    /**
     * 根据名称查询用户id
     *
     * @param userName 用户名
     * @return 记录总数
     */
    public int getUserIdByUserName(String userName);

    /**
     * 登录（根据用户名查询用户信息）
     *
     * @param userName
     * @return 用户对象
     */
    public User login(String userName);

    /**
     * 根据用户id查询密码
     *
     * @param userId 用户id
     * @return
     */
    public String selectUserPasswordById(Integer userId);

    /**
     * 查询用户信息
     *
     * @param pageNumber 页码
     * @param pageSize   每页显示记录数
     * @return
     */
    public List<User> selectUser(int pageNumber, int pageSize);

    /**
     * 查询用户总数
     *
     * @return 记录总数
     */
    public int selectCountOfUser();

    /**
     * 根据用户id删除用户
     *
     * @param userId 用户id
     * @return 受影响行数
     */
    public int deleteUserById(Integer userId);

    /**
     * 根据用户id查询用户信息
     *
     * @param userId 用户id
     * @return 用户对象
     */
    public User selectUserById(Integer userId);

    /**
     * 修改用户指定信息
     *
     * @param user 需修改的用户对象
     * @return
     */
    int updateUserSeletive(User user);

    /**
     * 查询当天新增的用户
     *
     * @return
     */
    public int selectTodayUserCount();

}
